package com.jxpanda.infrastructure.crypto.key.contract;

import java.security.spec.AlgorithmParameterSpec;

public interface KeyProvider<K, P extends AlgorithmParameterSpec> {

    /**
     * 返回此提供器对应的算法名称
     * 这里返回算法名称，不是算法的实现名称
     * 具体名称从{@link com.jxpanda.infrastructure.crypto.constant.AlgorithmEncrypt}可以查看
     */
    String getAlgorithm();

    K generateKey(P spec) throws Exception;

}
